package com.ftg.learn.controller;

import com.ftg.learn.service.ConsumerService;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import java.util.Arrays;
import java.util.List;

/**
 * @author 布衣
 */
@RestController
public class ConsumerController {

    @Resource
    ConsumerService consumerService;

    /**
     * 这个方法是本地的直接方法（直接调用本地  - controller - service - mapper - mysql）
     *
     * @return
     */
    @GetMapping("/consumer-data")
    public String getData() {
        return consumerService.getData();
    }

    /**
     * 如果 说这个类的实例为null，说明spring没有内置它的组件,
     *
     * @Configuration @Bean来完成这样的功能
     */
    @Resource
    RestTemplate restTemplate;

    /**
     * springboot 当中是否提供这样的网间调用   （）
     * redis  template (模板设计模式) [redis的通过访问模板]
     * 网间通信  (RestTemplate [ ])
     * http通讯协议的问题  net
     * httpclient()
     * okhttp3()
     * feign();  //netflex
     * openfeign();
     */
    @GetMapping("/call/provider")
    public String callProvider() {
        return restTemplate.getForObject("http://localhost:8081/provider-data", String.class);
    }


    /**
     * 随机算未能  [轮询]
     *
     * @param name
     * @return
     */
    @GetMapping("/call/provider/{name}")
    public String callProviderByName(@PathVariable("name") String name) {
        return "";
    }

}
